From 1f2e21ab9ae8e0e3b109b4785d1c434d422ccef6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 18 Sep 2015 03:49:09 +0200 Subject: [PATCH] sizegroup: Refactor function Get rid of continues in loop. This allows doing more complex things in future commits. --- gtk/gtksizegroup.c | 53 ++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c index 091bcc9097..d6276a90f5 100644 --- a/gtk/gtksizegroup.c +++ b/gtk/gtksizegroup.c @@ -239,43 +239,36 @@ queue_resize_on_widget (GtkWidget *widget, while (parent) { - GSList *widget_groups; - GHashTableIter iter; - gpointer current; - if (widget == parent) real_queue_resize (widget); - if (widget == parent && !check_siblings) + if (!check_siblings || _gtk_widget_get_sizegroups (parent) == NULL) { - parent = _gtk_widget_get_parent (parent); - continue; + check_siblings = TRUE; } - - widget_groups = _gtk_widget_get_sizegroups (parent); - if (!widget_groups) - { - parent = _gtk_widget_get_parent (parent); - continue; - } - - g_hash_table_remove_all (widgets); - g_hash_table_remove_all (groups); - add_widget_to_closure (widgets, groups, parent, -1); - - g_hash_table_iter_init (&iter, widgets); - while (g_hash_table_iter_next (&iter, ¤t, NULL)) - { - if (current == parent) - { - /* do nothing */ - } - else if (current == widget) + else + { + GHashTableIter iter; + gpointer current; + + g_hash_table_remove_all (widgets); + g_hash_table_remove_all (groups); + add_widget_to_closure (widgets, groups, parent, -1); + + g_hash_table_iter_init (&iter, widgets); + while (g_hash_table_iter_next (&iter, ¤t, NULL)) { - g_warning ("A container and its child are part of this SizeGroup"); + if (current == parent) + { + /* do nothing */ + } + else if (current == widget) + { + g_warning ("A container and its child are part of this SizeGroup"); + } + else + queue_resize_on_widget (current, FALSE); } - else - queue_resize_on_widget (current, FALSE); } parent = _gtk_widget_get_parent (parent); -- 2.30.2